<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
	<title>Payload transforms | ElasticSearch 7.7 权威指南中文版</title>
	<meta name="keywords" content="ElasticSearch 权威指南中文版, elasticsearch 7, es7, 实时数据分析，实时数据检索" />
    <meta name="description" content="ElasticSearch 权威指南中文版, elasticsearch 7, es7, 实时数据分析，实时数据检索" />
    <!-- Give IE8 a fighting chance -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
	<link rel="stylesheet" type="text/css" href="../static/styles.css" />
	<script>
	var _link = 'transform.html';
    </script>
</head>
<body>
<div class="main-container">
    <section id="content">
        <div class="content-wrapper">
            <section id="guide" lang="zh_cn">
                <div class="container">
                    <div class="row">
                        <div class="col-xs-12 col-sm-8 col-md-8 guide-section">
                            <div style="color:gray; word-break: break-all; font-size:12px;">原英文版地址: <a href="https://www.elastic.co/guide/en/elasticsearch/reference/7.7/transform.html" rel="nofollow" target="_blank">https://www.elastic.co/guide/en/elasticsearch/reference/7.7/transform.html</a>, 原文档版权归 www.elastic.co 所有<br/>本地英文版地址: <a href="../en/transform.html" rel="nofollow" target="_blank">../en/transform.html</a></div>
                        <!-- start body -->
                  <div class="page_header">
<strong>重要</strong>: 此版本不会发布额外的bug修复或文档更新。最新信息请参考 <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html" rel="nofollow">当前版本文档</a>。
</div>
<div id="content">
<div class="breadcrumbs">
<span class="breadcrumb-link"><a href="index.html">Elasticsearch Guide [7.7]</a></span>
»
<span class="breadcrumb-link"><a href="xpack-alerting.html">Alerting on cluster and index events</a></span>
»
<span class="breadcrumb-node">Payload transforms</span>
</div>
<div class="navheader">
<span class="prev">
<a href="actions-jira.html">« Jira action</a>
</span>
<span class="next">
<a href="transform-search.html">Search payload transform »</a>
</span>
</div>
<div class="chapter xpack">
<div class="titlepage"><div><div>
<h2 class="title">
<a id="transform"></a>Payload transforms<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/x-pack/docs/en/watcher/transform.asciidoc">edit</a><a class="xpack_tag" href="https://www.elastic.co/subscriptions"></a>
</h2>
</div></div></div>
<p>A <em>payload transform</em> processes and changes the payload in the watch execution
context to prepare it for the watch actions. Watcher supports three types of
payload transforms: <a class="xref" href="transform-search.html" title="Search payload transform"><code class="literal">search</code></a>,
<a class="xref" href="transform-script.html" title="Script payload transform"><code class="literal">script</code></a> and <a class="xref" href="transform-chain.html" title="Chain payload transform"><code class="literal">chain</code></a>.</p>
<div class="note admon">
<div class="icon"></div>
<div class="admon_content">
<p>Payload transforms are optional. When none are defined, the actions
have access to the payload as loaded by the watch input.</p>
</div>
</div>
<p>You can define payload transforms in two places:</p>
<div class="ulist itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
As a top level construct in the watch definition. In this case, the payload is
transformed before any of the watch actions are executed.
</li>
<li class="listitem">
As part of the definition of an action. In this case, the payload is
transformed before that action is executed. The transformation is only applied
to the payload for that specific action.
</li>
</ul>
</div>
<p>If all actions require the same view of the payload, define a payload transform
as part of the watch definition. If each action requires a different view of the
payload, define different payload transforms as part of the action definitions
so each action has the payload prepared by its own dedicated payload transform.</p>
<p>The following example defines two payload transforms, one at the watch level
and one as part of the definition of the <code class="literal">my_webhook</code> action.</p>
<div class="pre_wrapper lang-js">
<pre class="programlisting prettyprint lang-js">{
  "trigger" : { ...}
  "input" : { ... },
  "condition" : { ... },
  "transform" : { <a id="CO532-1"></a><i class="conum" data-value="1"></i>
    "search" : {
      "body" : { "query" : { "match_all" : {} } }
    }
  },
  "actions" : {
    "my_webhook": {
      "transform" : { <a id="CO532-2"></a><i class="conum" data-value="2"></i>
      	"script" : "return ctx.payload.hits"
      },
      "webhook" : {
      	"host" : "host.domain",
      	"port" : 8089,
      	"path" : "/notify/{{ctx.watch_id}}"
      }
    }
  ]
}</pre>
</div>
<div class="calloutlist">
<table border="0" summary="Callout list">
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO532-1"><i class="conum" data-value="1"></i></a></p>
</td>
<td align="left" valign="top">
<p>A watch level <code class="literal">transform</code></p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO532-2"><i class="conum" data-value="2"></i></a></p>
</td>
<td align="left" valign="top">
<p>An action level <code class="literal">transform</code></p>
</td>
</tr>
</table>
</div>



</div>
<div class="navfooter">
<span class="prev">
<a href="actions-jira.html">« Jira action</a>
</span>
<span class="next">
<a href="transform-search.html">Search payload transform »</a>
</span>
</div>
</div>

                  <!-- end body -->
                        </div>
                        <div class="col-xs-12 col-sm-4 col-md-4" id="right_col">
                        
                        </div>
                    </div>
                </div>
            </section>
        </div>
    </section>
</div>
<script src="../static/cn.js"></script>
</body>
</html>